package cn.aulang.study.ai.server.service;

import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.ai.tool.annotation.ToolParam;
import org.springframework.stereotype.Service;

/**
 * 用户服务
 *
 * @author Aulang
 */
@Slf4j
@Service
public class UserInfoService {

    @Tool(description = "我是谁")
    public String whoAmI() {
        log.info("开始回答我是谁");
        String result = getCurrentUser();
        log.info("调用我是谁结果：{}", result);
        return result;
    }

    @Tool(description = "获取当前用户信息")
    public String getCurrentUser() {
        log.info("开始获取当前用户信息");
        String result = "ID：1，姓名：吴浪，性别：男，年龄：36，联系方式：183xxxx8716";
        log.info("调用获取当前用户信息结果：{}", result);
        return result;
    }

    @Tool(description = "获取所有联系人")
    public String getAllContacts() {
        log.info("开始获取所有联系人");
        String result = "ID：2，姓名：老婆，性别：女，年龄：36，联系方式：152xxxx0593";
        log.info("获取所有联系人结果：{}", result);
        return result;
    }

    @Tool(description = "查找联系人")
    public String getContactByName(@ToolParam(description = "姓名") String name) {
        log.info("开始查找联系人");
        String result;
        if ("老婆".equals(name)) {
            result =  "ID：2，姓名：老婆，性别：女，年龄：36，联系方式：152xxxx0593";
        } else {
            result =  "没有找到该联系人！";
        }
        log.info("查找联系人结果：{}", result);
        return result;
    }

    @Tool(description = "通知联系人")
    public String noticeContact(@ToolParam(description = "ID") String id,
                                @ToolParam(description = "联系方式") String phone,
                                @ToolParam(description = "提醒内容") String context) {
        log.info("开始通知联系人，id:{}，phone:{}，提醒内容：{}", id, phone, context);
        log.info("通知联系人结果：{}", "success");
        return "已通知联系人";
    }
}
